什麼是GCD(Grand Central Dispatch)?
GCD是Apple開發的多線程編程,是 Apple 將複雜且不易使用的 Thread 操作方式簡化過的 API。
GCD為多執行緒的運用,可將單一任務拆成多個小任務同時執行,或者同時執行多個任務,目的是縮短執行任務的時間,而最重要的是,確保不佔用主執行緒而影響到使用者的操作。
GCD有兩種
非同步(asynchronous)具備開啟新執行緒的能力,也具備跳過當前程式碼繼續往下執行的能力,相對於 synchronous,asynchronous 的 function 會馬上回傳值。asynchronous function 裡的工作會按照順序執行,但這個 function 不會等其它的動作執行完,它會馬上回傳值,因此 asynchronous function 不會造成它所在的執行緒阻塞。
同步(synchronous)不具備開啟新執行緒的能力,也不具備跳過當前程式碼繼續往下執行的能力,一個 Synchronous 的 Function 只有在完成裡面的工作後,才會回傳值。
GCD的優點
Queue是執行程式碼的順序,採用FIFO(先進先出)的原則,執行順序從第一行開始。每一段程式碼執行完,才會進入下一段程式碼。
Main Queue
Main Queue有最高優先級,並且在主線程上運行。所有UI更新都該在主線程上完成,若沒有,在應用程式上會導致crashes。
Global Queue
根據QOS(Quality of Service),此執行緒分為4種主要類型和一種默認類型,從最高順位到最低順位
這就是簡單介紹~~